Distributed systems may include multiple nodes storing copies of the same data locally at the nodes. In some distributed systems, there is a strong consistency requirement throughout the system, making it important to implement procedures to maintain consistency of data stored by the nodes. Examples of distributed systems having consistency requirements can include data serving systems where multiple caches access the same storage. Each cache can be considered a node in the distributed system.
One approach to consistency requirements in a distributed system is the Two-Phase Commit Protocol (2PC). 2PC is a blocking protocol that operates from two phases: a vote phase, and a commit phase. It will be understood that there are other ways to maintain consistency within the distributed system. Data consistency operations typically lock the data during updates to prevent access to the data. The locking of the data can prevent data becoming inconsistent while the updates occur, but it can negatively affect system performance during the update process.
Descriptions of certain details and embodiments follow, including a description of the figures, which can depict some or all of the embodiments described below, as well as discussing other potential embodiments or implementations of the inventive concepts presented herein.